//
//  TYTheme.h
//  TuyaSmartPublic
//
//  Created by 高森 on 2017/3/9.
//  Copyright © 2017年 Tuya. All rights reserved.
//

#if TARGET_OS_IOS

#import <Foundation/Foundation.h>

/// 主题色
/// @discussion 类名与文件名不一致因为`TYTheme.h`已经作为模块公开头文件无法改名了
@interface TYTheme : NSObject

@property (class, nonatomic, readonly) TYTheme *theme;
@property (nonatomic, strong) UIColor *dynamicClolr;// 动态设置的主题色
// topBar
@property (nonatomic, strong,readonly) UIColor *status_bg_color;
@property (nonatomic, strong,readonly) UIColor *status_font_color;
@property (nonatomic, strong,readonly) UIColor *status_disable_color;
@property (nonatomic, strong,readonly) UIColor *status_select_color;
@property (nonatomic, strong,readonly) UIColor *navbar_font_color;

// tabBar
@property (nonatomic, strong,readonly) UIColor *tab_selected_color;
@property (nonatomic, strong,readonly) UIColor *tab_no_selected_color;
@property (nonatomic, strong,readonly) UIColor *tab_bg_color;

// background
@property (nonatomic, strong,readonly) UIColor *app_bg_color;

// list
@property (nonatomic, strong,readonly) UIColor *list_line_color;
@property (nonatomic, strong,readonly) UIColor *list_bg_color;
@property (nonatomic, strong,readonly) UIColor *list_sub_color;
@property (nonatomic, strong,readonly) UIColor *list_secondary_color;
@property (nonatomic, strong,readonly) UIColor *list_primary_color;
@property (nonatomic, strong,readonly) UIColor *list_cell_bg_color;

//card
@property (nonatomic, strong,readonly) UIColor *card_bg_color;
//alert
@property (nonatomic, strong,readonly) UIColor *alert_bg_color;

//button(深色背景，浅色文字)
@property (nonatomic, strong, readonly) UIColor *primary_button_bg_color;
@property (nonatomic, strong, readonly) UIColor *primary_button_font_color;
@property (nonatomic, strong, readonly) UIColor *primary_button_select_color;
// button2(浅色背景，深色文字)
@property (nonatomic, strong, readonly) UIColor *secondary_button_font_color;
@property (nonatomic, strong, readonly) UIColor *secondary_button_bg_color;
@property (nonatomic, strong, readonly) UIColor *secondary_button_select_color;

/// App 背景颜色
@property (nonatomic,strong,readonly) UIColor *B1;
/// App 头部导航背景颜色
@property (nonatomic,strong,readonly) UIColor *B2;
/// 卡片背景颜色
@property (nonatomic,strong,readonly) UIColor *B3;
/// 弹窗背景颜色
@property (nonatomic,strong,readonly) UIColor *B4;
/// 底部导航栏背景颜色
@property (nonatomic,strong,readonly) UIColor *B5;
/// 列表单元格背景颜色
@property (nonatomic,strong,readonly) UIColor *B6;
/// App 背景高亮颜色
@property (nonatomic,strong,readonly) UIColor *B1_2;
/// App 头部导航背景高亮颜色
@property (nonatomic,strong,readonly) UIColor *B2_2;
/// 卡片背景高亮颜色
@property (nonatomic,strong,readonly) UIColor *B3_2;
/// 弹窗背景高亮颜色
@property (nonatomic,strong,readonly) UIColor *B4_2;
/// 底部导航栏背景高亮颜色
@property (nonatomic,strong,readonly) UIColor *B5_2;
/// 列表单元格背景高亮颜色
@property (nonatomic,strong,readonly) UIColor *B6_2;
/// 按钮主题色
@property (nonatomic,strong,readonly) UIColor *M1;
/// 按钮警告颜色
@property (nonatomic,strong,readonly) UIColor *M2;
/// 按钮`开关·成功·推荐`类型颜色
@property (nonatomic,strong,readonly) UIColor *M3;
/// 按钮引导类型颜色
@property (nonatomic,strong,readonly) UIColor *M4;
/// 底部 tab 栏，tabItem 选中项颜色
@property (nonatomic,strong,readonly) UIColor *M5;
/// 按钮主题置灰色
@property (nonatomic,strong,readonly) UIColor *M1_1;
/// 按钮警告置灰色
@property (nonatomic,strong,readonly) UIColor *M2_1;
/// 按钮`开关·成功·推荐`类型置灰色
@property (nonatomic,strong,readonly) UIColor *M3_1;
/// 按钮引导类型置灰色
@property (nonatomic,strong,readonly) UIColor *M4_1;
/// 按钮主题高亮色
@property (nonatomic,strong,readonly) UIColor *M1_2;
/// 按钮警告置高亮色
@property (nonatomic,strong,readonly) UIColor *M2_2;
/// 按钮`开关·成功·推荐`类型置高亮色
@property (nonatomic,strong,readonly) UIColor *M3_2;
/// 按钮引导类型置高亮色
@property (nonatomic,strong,readonly) UIColor *M4_2;
/// 大标题文字透明度
@property (nonatomic,assign,readonly) CGFloat N1;
/// 小标题文字透明度
@property (nonatomic,assign,readonly) CGFloat N2;
/// 辅助说明文字透明度
@property (nonatomic,assign,readonly) CGFloat N3;
/// `失效·提示`文字透明度
@property (nonatomic,assign,readonly) CGFloat N4;
/// `导航栏·功能icon`文字透明度
@property (nonatomic,assign,readonly) CGFloat N5;
/// 右侧箭头文字透明度
@property (nonatomic,assign,readonly) CGFloat N6;
/// 横线透明度
@property (nonatomic,assign,readonly) CGFloat N7;
/// 蒙层透明度
@property (nonatomic,assign,readonly) CGFloat N8;
/// 按钮大圆角
@property (nonatomic,assign,readonly) CGFloat C1_1;
/// 按钮中圆角
@property (nonatomic,assign,readonly) CGFloat C1_2;
/// 按钮小圆角
@property (nonatomic,assign,readonly) CGFloat C1_3;
/// 弹窗圆角
@property (nonatomic,assign,readonly) CGFloat C2;
/// 卡片大圆角
@property (nonatomic,assign,readonly) CGFloat C3_1;
/// 卡片中型圆角
@property (nonatomic,assign,readonly) CGFloat C3_2;
/// 卡片小圆角
@property (nonatomic,assign,readonly) CGFloat C3_3;
/// 卡片极小圆角
@property (nonatomic,assign,readonly) CGFloat C3_4;
/// 自定义字体名称
@property (nonatomic,strong,readonly) NSString *appFont;
/// 自定义粗字体名称
@property (nonatomic,strong,readonly) NSString *appBoldFont;

/// 是否为暗色主题
/// @discussion 根据 `self.app_bg_color.ty_isDarkcolor` 的颜色值来判断
@property (nonatomic, assign, readonly) BOOL isDarkMode;

/// 是否为亮色主题
/// @discussion 根据 `self.app_bg_color.ty_isDarkcolor` 的颜色值来判断
@property (nonatomic, assign, readonly) BOOL isLightMode;

/// 状态栏类型
- (UIStatusBarStyle)preferredStatusBarStyle;

/// 重置主题，重置后可重新读区主题配置
+ (void)reset;

+ (NSString *)colorsKey;

- (void)cacheDynamicColor:(UIColor *)dynamicClolr;

@end

#endif
